import random

#饼图
def pieJson(total_e,year_term):
	option_s_1={
		'title':{
			'text':'总体情况',
			'subtext':year_term,
			'x':'center'
		},
		'tooltip':{
	        'trigger': 'item',
	        'formatter': "{a} <br/>{b} : {c} ({d}%)"
	    },
		'legend':{
	    	'orient' : 'vertical',
	        'x' : 'left',
	        'data':['很不满意','不满意','一般','满意','很满意']
	    },
		'toolbox': {
	    	'show' : True,
	    	'feature' : {
	    	'dataView' : {'show': True, 'readOnly': False},
	    	'magicType' : {
	         	'show': True, 
	            'type': ['pie', 'funnel'],
	            'option': {
		           	'funnel': {
		        		'x': '50%',
		                'width': '40%',
		            	'sort' : 'ascending',
		            	 'funnelAlign': 'left',
		            }
	        	}
	        },
	        'restore' : {'show': True},
	        'saveAsImage' : {'show': True}
	    	}
	   },

		'calculable':True,
		'series':[
	 		{
		 		
		        'type':'pie',
		        'radius' : '55%',
		        'center': ['50%', '60%'],
		      	'data':[
		            {'value':total_e.start1, 'name':'很不满意'},
		            {'value':total_e.start2, 'name':'不满意'},
		           	{'value':total_e.start3, 'name':'一般'},
		           	{'value':total_e.start4, 'name':'满意'},
		            {'value':total_e.start5, 'name':'很满意'}
		        ],
		    	'itemStyle':{ 
		            'normal':{ 
		                  'label':{ 
		                    'show': True, 
		                    'formatter': '{b} :({d}%)' 
		                  }, 
		                  'labelLine' :{'show':True} 
		        	} 
	        	} 
	 		}
	 	]
	 	}
	return option_s_1

#往年对比
def now_ago_line(now,ago):

	option={
		    'title' : {
		        'text': '往年数据对比',
		        'subtext': ago.year_term +" - " + now.year_term
		    },
		    'tooltip' : {
		        'trigger': 'axis'
		    },
		    'legend': {
		        'data':[ago.year_term,now.year_term]
		    },
		    'toolbox': {
		        'show' : True,
		        'feature' : {
		            'mark' : {'show': False},
		            'dataView' : {'show': True, 'readOnly': False},
		            'magicType' : {'show': True, 'type': ['line', 'bar']},
		            'restore' : {'show': True},
		            'saveAsImage' : {'show': True}
		        }
		    },
		    'calculable' : True,
		    'xAxis' : [
		        {
		            'type' : 'category',
		            'data' : ['很满意','满意','一般','不满意','很不满意']
		        }
		    ],
		    'yAxis' : [
		        {
		            'type' : 'value'
		        }
		    ],
		    'series' : [
		        {
		            'name':ago.year_term,
		            'type':'bar',
		            'data':[ago.start5,ago.start4,ago.start3,ago.start2,ago.start1],
		            'markPoint' : {
		                'data' : [
		                   {'name' : '', 'value' :ago.start5 , 'xAxis': '很满意', 'yAxis': ago.start5, 'symbolSize':18},
		                     {'name' : '', 'value' :ago.start4 , 'xAxis': '满意', 'yAxis': ago.start4, 'symbolSize':18},
		                    {'name' : '', 'value' :ago.start3 , 'xAxis': '一般', 'yAxis': ago.start3, 'symbolSize':18},
		                  {'name' : '', 'value' :ago.start2 , 'xAxis': '不满意', 'yAxis': ago.start2, 'symbolSize':18},
		                  {'name' : '', 'value' :ago.start1 , 'xAxis': '很不满意', 'yAxis': ago.start1, 'symbolSize':18}
		                ]
		            },
		            'markLine' : {
		                'data' : [
		                    {'type' : 'average', 'name': '平均值'}
		                ]
		            }
		        },
		        {
		            'name':now.year_term,
		            'type':'bar',
		            'data':[now.start5,now.start4,now.start3,now.start2,now.start1],
		            'markPoint' : {
		                'data' : [
		                    {'name' : '', 'value' :now.start5 , 'xAxis': '很满意', 'yAxis': now.start5, 'symbolSize':18},
		                     {'name' : '', 'value' :now.start4 , 'xAxis': '满意', 'yAxis': now.start4, 'symbolSize':18},
		                    {'name' : '', 'value' :now.start3 , 'xAxis': '一般', 'yAxis': now.start3, 'symbolSize':18},
		                  {'name' : '', 'value' :now.start2 , 'xAxis': '不满意', 'yAxis': now.start2, 'symbolSize':18},
		                  {'name' : '', 'value' :now.start1 , 'xAxis': '很不满意', 'yAxis': now.start1, 'symbolSize':18}
		                ]
		            },
		            'markLine' : {
		                'data' : [
		                    {'type' : 'average', 'name' : '平均值'}
		                ]
		            }
		        }
		    ]
		}
	return option

#热词
def hot_word(student_hot):
	word_list =[]
	value_list = []
	data_list=[]
	word_list = student_hot.word.split('+')
	value_list =student_hot.value.split(',')
	for word,num in zip(word_list,value_list):
		temp={}
		temp['name']=word
		temp['value']=int(num)
		temp['itemStyle']= createRandomItemStyle()
		data_list.append(temp)
	option= {
	    'title': {
	        'text': '评价热词',
	        
	    },
	    'tooltip': {
	        'show': True
	    },
	    'series': [{
	        'name': '热词',
	        'type': 'wordCloud',
	        'size': ['80%', '80%'],
	        'textRotation' : [0, 0, 0, 0],
	        'textPadding': 3,
	        'autoSize': {
	            'enable': True,
	            'minSize': 30
	        },
	        'data': data_list
	    }]
	};
	return option




def createRandomItemStyle():
	return {
        'normal': {
        	'color': 'rgb(' +str(round(random.uniform(0,160)))+','+str(round(random.uniform(0,160)))+','+str(round(random.uniform(0,160)))+')'
        }
    }

#学生对机构饼图
def org_pie(org_now):
	option={
		'title':{
			'text':'总体情况',
			'subtext':org_now.year_term,
			'x':'center'
		},
		'tooltip':{
	        'trigger': 'item',
	        'formatter': "{a} <br/>{b} : {c} ({d}%)"
	    },
		'legend':{
	    	'orient' : 'vertical',
	        'x' : 'left',
	        'data':['教务处','保卫处','财务处','校团委','后勤基建处','发展规划处']
	    },
		'toolbox': {
	    	'show' : True,
	    	'feature' : {
	    	'dataView' : {'show': True, 'readOnly': False},
	    	'magicType' : {
	         	'show': True, 
	            'type': ['pie', 'funnel'],
	            'option': {
		           	'funnel': {
		        		'x': '40%',
		                'width': '40%',
		            	'sort' : 'ascending',
		            	 'funnelAlign': 'left',
		            }
	        	}
	        },
	        'restore' : {'show': True},
	        'saveAsImage' : {'show': True}
	    	}
	   },

		'calculable':True,
		'series':[
	 		{
		 		
		        'type':'pie',
		        'radius' : '65%',
		        'center': ['50%', '60%'],
		      	'data':[
		            {'value':org_now.org_1, 'name':'教务处'},
		            {'value':org_now.org_2, 'name':'保卫处'},
		           	{'value':org_now.org_3, 'name':'财务处'},
		           	{'value':org_now.org_4, 'name':'校团委'},
		           	{'value':org_now.org_5, 'name':'后勤基建处'},
		            {'value':org_now.org_6, 'name':'发展规划处'}
		        ],
		    	'itemStyle':{ 
		            'normal':{ 
		                  'label':{ 
		                    'show': True, 
		                    'formatter': '{b} :({d}%)' 
		                  }, 
		                  'labelLine' :{'show':True} 
		        	} 
	        	} 
	 		}
	 	]
	 	}
	return option

#学生对校内机构评价，往年对比
def org_now_ago(org_now,org_ago):
	option={
		    'title' : {
		        'text': '往年数据对比',
		        'subtext': org_ago.year_term +" - " + org_now.year_term
		    },
		    'tooltip' : {
		        'trigger': 'axis'
		    },
		    'legend': {
		        'data':[org_ago.year_term,org_now.year_term]
		    },
		    'toolbox': {
		        'show' : True,
		        'feature' : {
		            'mark' : {'show': False},
		            'dataView' : {'show': True, 'readOnly': False},
		            'magicType' : {'show': True, 'type': ['line', 'bar']},
		            'restore' : {'show': True},
		            'saveAsImage' : {'show': True}
		        }
		    },
		    'calculable' : True,
		    'xAxis' : [
		        {
		            'type' : 'category',
		            'data' :['教务处','保卫处','财务处','校团委','后勤基建处','发展规划处']
		        }
		    ],
		    'yAxis' : [
		        {
		            'type' : 'value'
		        }
		    ],
		    'series' : [
		        {
		            'name':org_ago.year_term,
		            'type':'bar',
		            'data':[org_ago.org_6,org_ago.org_5,org_ago.org_4,org_ago.org_3,org_ago.org_2,org_ago.org_1],
		            'markPoint' : {
		                'data' : [
		                	{'name' : '', 'value' :org_ago.org_6 , 'xAxis': '教务处', 'yAxis': org_ago.org_6, 'symbolSize':18},
		                    {'name' : '', 'value' :org_ago.org_5 , 'xAxis': '保卫处', 'yAxis': org_ago.org_5, 'symbolSize':18},
		                    {'name' : '', 'value' :org_ago.org_4 , 'xAxis': '财务处', 'yAxis': org_ago.org_4, 'symbolSize':18},
		                    {'name' : '', 'value' :org_ago.org_3 , 'xAxis': '校团委', 'yAxis': org_ago.org_3, 'symbolSize':18},
		                    {'name' : '', 'value' :org_ago.org_2 , 'xAxis': '后勤基建处', 'yAxis': org_ago.org_2, 'symbolSize':18},
		                    {'name' : '', 'value' :org_ago.org_1 , 'xAxis': '发展规划处', 'yAxis': org_ago.org_1, 'symbolSize':18}
		                ]
		            },
		            'markLine' : {
		                'data' : [
		                    {'type' : 'average', 'name': '平均值'}
		                ]
		            }
		        },
		        {
		            'name':org_now.year_term,
		            'type':'bar',
		            'data':[org_now.org_6,org_now.org_5,org_now.org_4,org_now.org_3,org_now.org_2,org_now.org_1],
		            'markPoint' : {
		                'data' : [
		                	 {'name' : '', 'value' :org_now.org_6 , 'xAxis': '教务处', 'yAxis': org_now.org_6, 'symbolSize':18},
		                    {'name' : '', 'value' :org_now.org_5 , 'xAxis': '保卫处', 'yAxis': org_now.org_5, 'symbolSize':18},
		                     {'name' : '', 'value' :org_now.org_4 , 'xAxis': '财务处', 'yAxis': org_now.org_4, 'symbolSize':18},
		                    {'name' : '', 'value' :org_now.org_3 , 'xAxis': '校团委', 'yAxis': org_now.org_3, 'symbolSize':18},
		                  {'name' : '', 'value' :org_now.org_2 , 'xAxis': '后勤基建处', 'yAxis': org_now.org_2, 'symbolSize':18},
		                  {'name' : '', 'value' :org_now.org_1 , 'xAxis': '发展规划处', 'yAxis': org_now.org_1, 'symbolSize':18}
		                ]
		            },
		            'markLine' : {
		                'data' : [
		                    {'type' : 'average', 'name' : '平均值'}
		                ]
		            }
		        }
		    ]
		}
	return option